module(
    name = "grpc_kotlin",
    # Note: the Publish-to-BCR app will patch this line to stamp the version being published.
    version = "1.5.0-rc.5",
    compatibility_level = 1,
)

bazel_dep(name = "protobuf", version = "31.1")  # Max version without causing compiler errors.
bazel_dep(name = "rules_kotlin", version = "2.1.9")
bazel_dep(name = "rules_java", version = "8.15.2")
bazel_dep(name = "rules_jvm_external", version = "6.8")
bazel_dep(name = "grpc-java", version = "1.71.0")

# Formatter.
bazel_dep(name = "format", version = "0.0.0", dev_dependency = True)
local_path_override(
    module_name = "format",
    path = "tools/format",
)

grpc_kotlin_maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
grpc_kotlin_maven.install(
    name = "grpc_kotlin_maven",
    # Rerun whenever adding new artifacts.
    # $ REPIN=1 bazelisk run @grpc_kotlin_maven//:pin
    artifacts = [
        "com.google.jimfs:jimfs:1.3.0",
        "com.google.truth:truth:1.4.4",
        "com.google.truth.extensions:truth-proto-extension:1.4.4",
        "com.google.protobuf:protobuf-java:4.30.2",
        "com.google.protobuf:protobuf-kotlin:4.30.2",
        "com.google.guava:guava:33.3.1-android",
        "com.squareup:kotlinpoet:1.14.2",  # Max version without causing compiler errors.
        "junit:junit:4.13.2",
        "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1",
        "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1",
    ],
    fetch_sources = False,
    generate_compat_repositories = True,
    lock_file = "//:grpc_kotlin_maven_install.json",
    strict_visibility = True,
)
use_repo(grpc_kotlin_maven, "grpc_kotlin_maven")
